package com.fqgj.sentry.controller.pc.request.rule.addAndUpdate;

import com.fqgj.sentry.policy.engine.domain.enums.ConditionGroupComposeEnum;
import com.fqgj.sentry.policy.engine.domain.enums.RuleTypeEnum;

import java.io.Serializable;
import java.util.List;

/**
 * Created by kennykong on 2017/7/15.
 */
public class RuleAddUpdateVo implements Serializable {

    /**
     * 规则ID
     */
    private Long ruleId;


    /**
     * 规则种类：策略规则|策略前置规则
     */
    private RuleTypeEnum ruleType;
    /**
     * 击中之后的决策：拒绝|接受|人工审核
     */
    private DecisionVo hitDecisionOption;

    /**
     * 权重相关信息，包括：计算方式，结果分等
     */
    private WeightVo weight;

    /**
     * 条件组之间的组合方式：满足所有|满足任意|任一不满足|均不满足
     */
    private ConditionGroupComposeEnum conditionGroupCompose;
    /**
     * 条件组集合
     */
    private List<ConditionGroupVo> conditionGroups;

    public Long getRuleId() {
        return ruleId;
    }

    public RuleAddUpdateVo setRuleId(Long ruleId) {
        this.ruleId = ruleId;
        return this;
    }

    public RuleTypeEnum getRuleType() {
        return ruleType;
    }

    public RuleAddUpdateVo setRuleType(RuleTypeEnum ruleType) {
        this.ruleType = ruleType;
        return this;
    }

    public DecisionVo getHitDecisionOption() {
        return hitDecisionOption;
    }

    public RuleAddUpdateVo setHitDecisionOption(DecisionVo hitDecisionOption) {
        this.hitDecisionOption = hitDecisionOption;
        return this;
    }

    public WeightVo getWeight() {
        return weight;
    }

    public RuleAddUpdateVo setWeight(WeightVo weight) {
        this.weight = weight;
        return this;
    }

    public ConditionGroupComposeEnum getConditionGroupCompose() {
        return conditionGroupCompose;
    }

    public RuleAddUpdateVo setConditionGroupCompose(ConditionGroupComposeEnum conditionGroupCompose) {
        this.conditionGroupCompose = conditionGroupCompose;
        return this;
    }

    public List<ConditionGroupVo> getConditionGroups() {
        return conditionGroups;
    }

    public RuleAddUpdateVo setConditionGroups(List<ConditionGroupVo> conditionGroups) {
        this.conditionGroups = conditionGroups;
        return this;
    }
}
